<!DOCTYPE HTML>

<html lang="en">
<head>

<title>ProviderManager (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ProviderManager (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="ProviderManager.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="ProviderManager.html#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>

<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.springframework.security.authentication</a></div>
<h2 title="Class ProviderManager" class="title">Class ProviderManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.springframework.security.authentication.ProviderManager</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>org.springframework.beans.factory.Aware</code>, <code>org.springframework.beans.factory.InitializingBean</code>, <code>org.springframework.context.MessageSourceAware</code>, <code><a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">ProviderManager</span>
extends java.lang.Object
implements <a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a>, org.springframework.context.MessageSourceAware, org.springframework.beans.factory.InitializingBean</pre>
<div class="block">Iterates an <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> request through a list of
<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s.
<p>
<tt>AuthenticationProvider</tt>s are usually tried in order until one provides a
non-null response. A non-null response indicates the provider had authority to decide
on the authentication request and no further providers are tried. If a subsequent
provider successfully authenticates the request, the earlier authentication exception
is disregarded and the successful authentication will be used. If no subsequent
provider provides a non-null response, or a new <code>AuthenticationException</code>,
the last <code>AuthenticationException</code> received will be used. If no provider
returns a non-null response, or indicates it can even process an
<code>Authentication</code>, the <code>ProviderManager</code> will throw a
<code>ProviderNotFoundException</code>. A parent <code>AuthenticationManager</code> can also
be set, and this will also be tried if none of the configured providers can perform the
authentication. This is intended to support namespace configuration options though and
is not a feature that should normally be required.
<p>
The exception to this process is when a provider throws an
<a href="AccountStatusException.html" title="class in org.springframework.security.authentication"><code>AccountStatusException</code></a>, in which case no further providers in the list will be
queried.
Post-authentication, the credentials will be cleared from the returned
<code>Authentication</code> object, if it implements the <a href="../core/CredentialsContainer.html" title="interface in org.springframework.security.core"><code>CredentialsContainer</code></a>
interface. This behaviour can be controlled by modifying the
<a href="ProviderManager.html#setEraseCredentialsAfterAuthentication(boolean)"><code>eraseCredentialsAfterAuthentication</code></a> property.
<h2>Event Publishing</h2>
<p>
Authentication event publishing is delegated to the configured
<a href="AuthenticationEventPublisher.html" title="interface in org.springframework.security.authentication"><code>AuthenticationEventPublisher</code></a> which defaults to a null implementation which
doesn't publish events, so if you are configuring the bean yourself you must inject a
publisher bean if you want to receive events. The standard implementation is
<a href="DefaultAuthenticationEventPublisher.html" title="class in org.springframework.security.authentication"><code>DefaultAuthenticationEventPublisher</code></a> which maps common exceptions to events (in
the case of authentication failure) and publishes an
<a href="event/AuthenticationSuccessEvent.html" title="class in org.springframework.security.authentication.event"><code>AuthenticationSuccessEvent</code></a> if authentication succeeds. If you are using the namespace
then an instance of this bean will be used automatically by the <tt>&lt;http&gt;</tt>
configuration, so you will receive events from the web part of your application
automatically.
<p>
Note that the implementation also publishes authentication failure events when it
obtains an authentication result (or an exception) from the "parent"
<code>AuthenticationManager</code> if one has been set. So in this situation, the parent
should not generally be configured to publish events or there will be duplicates.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="DefaultAuthenticationEventPublisher.html" title="class in org.springframework.security.authentication"><code>DefaultAuthenticationEventPublisher</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">

</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected org.springframework.context.support.MessageSourceAccessor</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#messages">messages</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">

</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#%3Cinit%3E(java.util.List)">ProviderManager</a></span>&#8203;(java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;&nbsp;providers)</code></th>
<td class="colLast">
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the given <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#%3Cinit%3E(java.util.List,org.springframework.security.authentication.AuthenticationManager)">ProviderManager</a></span>&#8203;(java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;&nbsp;providers,
<a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a>&nbsp;parent)</code></th>
<td class="colLast">
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the provided parameters</div>
</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#%3Cinit%3E(org.springframework.security.authentication.AuthenticationProvider...)">ProviderManager</a></span>&#8203;(<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>...&nbsp;providers)</code></th>
<td class="colLast">
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the given <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s</div>
</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">

</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#afterPropertiesSet()">afterPropertiesSet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#authenticate(org.springframework.security.core.Authentication)">authenticate</a></span>&#8203;(<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;authentication)</code></th>
<td class="colLast">
<div class="block">Attempts to authenticate the passed <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> object.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#getProviders()">getProviders</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#isEraseCredentialsAfterAuthentication()">isEraseCredentialsAfterAuthentication</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#setAuthenticationEventPublisher(org.springframework.security.authentication.AuthenticationEventPublisher)">setAuthenticationEventPublisher</a></span>&#8203;(<a href="AuthenticationEventPublisher.html" title="interface in org.springframework.security.authentication">AuthenticationEventPublisher</a>&nbsp;eventPublisher)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#setEraseCredentialsAfterAuthentication(boolean)">setEraseCredentialsAfterAuthentication</a></span>&#8203;(boolean&nbsp;eraseSecretData)</code></th>
<td class="colLast">
<div class="block">If set to, a resulting <code>Authentication</code> which implements the
<code>CredentialsContainer</code> interface will have its
<a href="../core/CredentialsContainer.html#eraseCredentials()"><code>eraseCredentials</code></a> method called
before it is returned from the <code>authenticate()</code> method.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ProviderManager.html#setMessageSource(org.springframework.context.MessageSource)">setMessageSource</a></span>&#8203;(org.springframework.context.MessageSource&nbsp;messageSource)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">

</a>
<h3>Field Detail</h3>
<a id="messages">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>messages</h4>
<pre>protected&nbsp;org.springframework.context.support.MessageSourceAccessor messages</pre>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">

</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.springframework.security.authentication.AuthenticationProvider...)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>ProviderManager</h4>
<pre>public&nbsp;ProviderManager&#8203;(<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>...&nbsp;providers)</pre>
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the given <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>providers</code> - the <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s to use</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>ProviderManager</h4>
<pre>public&nbsp;ProviderManager&#8203;(java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;&nbsp;providers)</pre>
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the given <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>providers</code> - the <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s to use</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List,org.springframework.security.authentication.AuthenticationManager)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ProviderManager</h4>
<pre>public&nbsp;ProviderManager&#8203;(java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;&nbsp;providers,
                       <a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a>&nbsp;parent)</pre>
<div class="block">Construct a <a href="ProviderManager.html" title="class in org.springframework.security.authentication"><code>ProviderManager</code></a> using the provided parameters</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>providers</code> - the <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s to use</dd>
<dd><code>parent</code> - a parent <a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication"><code>AuthenticationManager</code></a> to fall back to</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">

</a>
<h3>Method Detail</h3>
<a id="afterPropertiesSet()">

</a>
<ul class="blockList">
<li class="blockList">
<h4>afterPropertiesSet</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;afterPropertiesSet()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>afterPropertiesSet</code>&nbsp;in interface&nbsp;<code>org.springframework.beans.factory.InitializingBean</code></dd>
</dl>
</li>
</ul>
<a id="authenticate(org.springframework.security.core.Authentication)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticate</h4>
<pre class="methodSignature">public&nbsp;<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;authenticate&#8203;(<a href="../core/Authentication.html" title="interface in org.springframework.security.core">Authentication</a>&nbsp;authentication)
                            throws <a href="../core/AuthenticationException.html" title="class in org.springframework.security.core">AuthenticationException</a></pre>
<div class="block">Attempts to authenticate the passed <a href="../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> object.
<p>
The list of <a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication"><code>AuthenticationProvider</code></a>s will be successively tried until an
<code>AuthenticationProvider</code> indicates it is capable of authenticating the
type of <code>Authentication</code> object passed. Authentication will then be
attempted with that <code>AuthenticationProvider</code>.
<p>
If more than one <code>AuthenticationProvider</code> supports the passed
<code>Authentication</code> object, the first one able to successfully authenticate
the <code>Authentication</code> object determines the <code>result</code>,
overriding any possible <code>AuthenticationException</code> thrown by earlier
supporting <code>AuthenticationProvider</code>s. On successful authentication, no
subsequent <code>AuthenticationProvider</code>s will be tried. If authentication
was not successful by any supporting <code>AuthenticationProvider</code> the last
thrown <code>AuthenticationException</code> will be rethrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="AuthenticationManager.html#authenticate(org.springframework.security.core.Authentication)">authenticate</a></code>&nbsp;in interface&nbsp;<code><a href="AuthenticationManager.html" title="interface in org.springframework.security.authentication">AuthenticationManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authentication</code> - the authentication request object.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a fully authenticated object including credentials.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../core/AuthenticationException.html" title="class in org.springframework.security.core">AuthenticationException</a></code> - if authentication fails.</dd>
</dl>
</li>
</ul>
<a id="getProviders()">

</a>
<ul class="blockList">
<li class="blockList">
<h4>getProviders</h4>
<pre class="methodSignature">public&nbsp;java.util.List&lt;<a href="AuthenticationProvider.html" title="interface in org.springframework.security.authentication">AuthenticationProvider</a>&gt;&nbsp;getProviders()</pre>
</li>
</ul>
<a id="setMessageSource(org.springframework.context.MessageSource)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>setMessageSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMessageSource&#8203;(org.springframework.context.MessageSource&nbsp;messageSource)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setMessageSource</code>&nbsp;in interface&nbsp;<code>org.springframework.context.MessageSourceAware</code></dd>
</dl>
</li>
</ul>
<a id="setAuthenticationEventPublisher(org.springframework.security.authentication.AuthenticationEventPublisher)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>setAuthenticationEventPublisher</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAuthenticationEventPublisher&#8203;(<a href="AuthenticationEventPublisher.html" title="interface in org.springframework.security.authentication">AuthenticationEventPublisher</a>&nbsp;eventPublisher)</pre>
</li>
</ul>
<a id="setEraseCredentialsAfterAuthentication(boolean)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>setEraseCredentialsAfterAuthentication</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setEraseCredentialsAfterAuthentication&#8203;(boolean&nbsp;eraseSecretData)</pre>
<div class="block">If set to, a resulting <code>Authentication</code> which implements the
<code>CredentialsContainer</code> interface will have its
<a href="../core/CredentialsContainer.html#eraseCredentials()"><code>eraseCredentials</code></a> method called
before it is returned from the <code>authenticate()</code> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>eraseSecretData</code> - set to false to retain the credentials data in
memory. Defaults to true.</dd>
</dl>
</li>
</ul>
<a id="isEraseCredentialsAfterAuthentication()">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isEraseCredentialsAfterAuthentication</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEraseCredentialsAfterAuthentication()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>

<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="ProviderManager.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="ProviderManager.html#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="ProviderManager.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040e8d8bcfa97cf","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
